package com.java110.assets.bmo.machine.impl;

import com.alibaba.fastjson.JSONObject;
import com.java110.assets.bmo.machine.ISaveMachineBMO;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.client.RestTemplate;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.factory.RestTemplateFactory;
import com.java110.utils.constant.MallConstant;
import com.java110.utils.util.DateUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import com.java110.core.context.DataFlowContext;
import com.java110.po.machine.MachinePo;
import com.java110.intf.assets.IMachineInnerServiceSMO;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("saveMachineBMOImpl")
public class SaveMachineBMOImpl implements ISaveMachineBMO {

    @Autowired
    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
    @Autowired
    private RestTemplate outRestTemplate;

    /**
     * 添加小区信息
     *
     * @param
     * @return 订单服务能够接受的报文
     */
    @Java110Transactional
    public ResponseEntity<String> save(JSONObject reqJson) {

        MachinePo machinePo = BeanConvertUtil.covertBean( reqJson, MachinePo.class );
        machinePo.setHeartbeatTime( DateUtil.getNow( DateUtil.DATE_FORMATE_STRING_B ) );

        machinePo.setMachineId( GenerateCodeFactory.getGeneratorId( GenerateCodeFactory.CODE_PREFIX_machineId ) );
        int flag = machineInnerServiceSMOImpl.saveMachine( machinePo );


        if (flag > 0) {

//            reqJson.put( "extMachineId", machinePo.getMachineId() );
//            reqJson.put( "heartbeatTime", machinePo.getHeartbeatTime() );
//            ResponseEntity<String> responseEntity = RestTemplateFactory.restOutTemplate( reqJson, outRestTemplate, MallConstant.ADD_MACHINE_MALL, HttpMethod.POST );
//            if (responseEntity != null) {
//                if (responseEntity.getStatusCode() != HttpStatus.OK) {
//                    throw new IllegalArgumentException( responseEntity.getBody() );
//                }
//            }

            return ResultVo.createResponseEntity( ResultVo.CODE_OK, "保存成功" );
        }

        return ResultVo.createResponseEntity( ResultVo.CODE_ERROR, "保存失败" );
    }

}
